
### 第二批数据：1:敏感语料（短语） 2:微博评论原文（senti100k,处理特殊字符）,各6754条，测试集比例0.1
# 处理方式：
# 1.去掉表情符号，如：[哈哈] [鼓掌] [good]
# 2.去掉话题标记，如：##
# 3.去掉转发评论重的用户名等
# 4.去掉一些网址、无意义的词，如：转发微博等。

import pandas as pd

import re
def clean(text):
    text = re.sub(r"(回复)?(//)?\s*@\S*?\s*(:| |$)", " ", text)  # 去除正文中的@和回复/转发中的用户名
    text = re.sub(r"\[\S+\]", "", text)      # 去除表情符号
    text = re.sub(r"#\S+#", "", text)      # 去除话题内容
    text = re.sub(r"【\S+】", "", text)      # 去除标题
    URL_REGEX = re.compile(
        r'(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))',
        re.IGNORECASE)
    text = re.sub(URL_REGEX, "", text)       # 去除网址
    text = text.replace("转发微博", "")       # 去除无意义的词语
    text = re.sub(r"\s+", " ", text) # 合并正文中过多的空格
    return text.strip()


df_1 = pd.read_excel('/Users/leo/Data/项目数据/文德数慧-文本内容审核/分类实验/数据/网络信息语料 文德 20210122.xlsx', sheet_name='测试集')
df_0 = pd.read_csv('/Users/leo/Data/项目数据/文德数慧-文本内容审核/分类实验/数据/weibo_senti_100k.csv')


### proc weibo
df_0 = df_0[:100]
df_0['review_proc'] = ''
for i in range(len(df_0)):
    df_0.loc[i,'review_proc'] = clean(df_0.iloc[i]['review'])

df_0[['label','review_proc']].to_csv('/Users/leo/Data/项目数据/文德数慧-文本内容审核/分类实验/数据/weibo_senti_100k_proc.csv',index=False)
exit()
###

df_0 = df_0.sample(n=10000).reset_index(drop=True) # 有一些处理之后为空的，不要


data = pd.DataFrame(columns=['label','text'])

count = 0
for i in range(len(df_0)):
    label = 0
    text = clean(df_0.iloc[i]['review'])
    if text:
        count += 1
        data = data.append(pd.DataFrame({'label':[label],'text':[clean(text)]}),ignore_index=True)
        if count == 6754:
            break

for i in range(len(df_1)):
    label = 1
    text = df_1.iloc[i]['内容']
    data = data.append(pd.DataFrame({'label':[label],'text':[text]}),ignore_index=True)

assert len(data) == 6754*2

data['label'] = data['label'].astype(int)
data = data.sample(frac=1).reset_index(drop=True)

data_test = data[:int(len(df_1)*0.2)]
data_train = data[int(len(df_1)*0.2):]

data_train.to_csv(r"/Users/leo/Data/项目数据/文德数慧-文本内容审核/分类实验/数据/data_bert/v2/train.tsv",sep='\t',header=False,index=False)
data_test.to_csv(r"/Users/leo/Data/项目数据/文德数慧-文本内容审核/分类实验/数据/data_bert/v2/test.tsv",sep='\t',header=False,index=False)
data_test.to_csv(r"/Users/leo/Data/项目数据/文德数慧-文本内容审核/分类实验/数据/data_bert/v2/dev.tsv",sep='\t',header=False,index=False)
